#ifndef InputLine_H_
#define InputLine_H_

#include <algorithm>
#include "Token.h"
#include "Misc.h"



class InputLine  { 

public:
	//Default Constructor
	InputLine();
	//Destructor
	virtual ~InputLine();
	//Copy Constructor
	InputLine(const InputLine& il);
	//Operator '=' overloading
	const InputLine& operator=(const InputLine& il);
	
	//funcs
	///////
	/*
		@ret: returns all tokents in a line.
	*/
	vector<Token> TokenizeLine(int line_id, const string& line);
	

private:

	//private funcs
	///////////////
	const InputLine& assign(const InputLine& il);
	vector<string> divideStr(const string& str);
	string findLettersType(const string& letter_str);
	string findSignType(const string& letter_str);
	vector<Token> divideWordToToken(int line_id, const string& word);
	string elimanateTabs(const string &str);
};
#endif